/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package linkeddata.arida.ufc.br.manager.impl;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import linkeddata.arida.ufc.br.enums.ClausesSparql;
import linkeddata.arida.ufc.br.util.OWLUtils;
import org.semanticweb.owlapi.model.OWLEntity;

/**
 *
 * @author jeovane
 */
public class BuildsSparqlQueryUnion extends OWLUtils {
    
//    // I-N-C-O-M-P-L-E-T-O (FAIL)
//    public String buildsSelectUnion(Map<String, Set<String>> mapDatatype) {
//        // Adiciona a cláusula SELECT na consulta
//        queryUnion = "WHERE { \n" + "   { "
//                + ClausesSparql.SERVICE.toString() + " <> { \n"
//                + "      " + ClausesSparql.SELECT.toString();
//
//        for (Iterator it = mapDatatype.entrySet().iterator(); it.hasNext();) {
//            Map.Entry entry = (Map.Entry) it.next();
//            String keys = (String) entry.getKey();
//            setArrayKeysMap(keys);
//            Set<String> values = (Set<String>) entry.getValue();
//            for (String value : values) {
//                for (Iterator itBH = buildsHierarchy(getOntology()).entrySet().iterator(); itBH.hasNext();) {
//                    Map.Entry entryBH = (Map.Entry) itBH.next();
//                    String key = getPm().getShortForm((OWLEntity) entryBH.getKey()).replace(":", "");
//                    ArrayList<OWLEntity> arrayValues = (ArrayList<OWLEntity>) entryBH.getValue();
//                    if (key.equalsIgnoreCase(keys)) {
//                        for (OWLEntity owlEntity : arrayValues) {
//                            String valueKey = getPm().getShortForm(owlEntity).replace(":", "");
//                            if (valueKey.equalsIgnoreCase(value)) {
//                                queryUnion += " ?" + key + "_" + valueKey;
//                            }
//                        }
//                    }
//                }
//            }
//        }
//
//        return queryUnion;
//    }
//
//    // I-N-C-O-M-P-L-E-T-O (FAIL)
//    public Set<String> buildsWhereUnion(Map<String, Set<String>> mapDatatype) {
//        queryUnion = "WHERE { \n" + "   { "
//                + ClausesSparql.SERVICE.toString() + " <> { \n"
//                + "      " + ClausesSparql.SELECT.toString();
//
//        for (Iterator it = mapDatatype.entrySet().iterator(); it.hasNext();) {
//            Map.Entry entry = (Map.Entry) it.next();
//            String keys = (String) entry.getKey();
//            //arrayObjectDomain.add(keys);
//            Set<String> values = (Set<String>) entry.getValue();
//            for (String value : values) {
//                //setWhereUnion = new LinkedHashSet<>();
//                for (Iterator itBH = buildsHierarchy(getOntology()).entrySet().iterator(); itBH.hasNext();) {
//                    Map.Entry entryBH = (Map.Entry) itBH.next();
//                    String key = getPm().getShortForm((OWLEntity) entryBH.getKey()).replace(":", "");
//                    ArrayList<OWLEntity> arrayValues = (ArrayList<OWLEntity>) entryBH.getValue();
//                    if (key.equalsIgnoreCase(keys)) {
//                        for (OWLEntity owlEntity : arrayValues) {
//                            String valueKey = getPm().getShortForm(owlEntity).replace(":", "");
//                            if (valueKey.equalsIgnoreCase(value)) {
//                                queryUnion += " ?" + key + "_" + valueKey
//                                        + "\n         ?" + key + " "
//                                        + getPrefix() + ":" + valueKey
//                                        + " ?" + key + "_" + valueKey + ".";
//
//                                setWhereUnion.add(queryUnion);
//                            }
//                        }
//                    }
//                }
//            }
//        }
//        return setWhereUnion;
//    }
}
